Cellular and wireless communication technologies have seen explosive growth over the past several years. This growth has been fueled by better communications, hardware, larger networks, and more reliable protocols. Wireless service providers are now able to offer their customers an ever-expanding array of features and services, and provide users with unprecedented levels of access to information, resources, and communications. To keep pace with these service enhancements, mobile electronic devices (e.g., cellular phones, tablets, laptops, etc.) have become more powerful and complex than ever. With this increase in processing speed, usage, and performance, there is an increased demand for improving the efficiency and processing speed of the mobile devices, which may be achieved via faster and more sophisticated compilers and compiling frameworks.
Generally, application software written for mobile computing devices is compiled into executable code which is what users refer to as “applications.” Developers typically use a compiler to translate code written in higher level programming languages into executable code suitable for target mobile computing devices. Application software may be distributed as pure executable code, in which case the compiling step is typically performed by the developer on what is referred to as a “static compiler.” Application software may also be written so portions of the code are compiled at runtime using software modules within the mobile computing device referred to as a “runtime compiler.” Runtime compilers (e.g., dynamic compilers or Just in Time compilers) translate segments of code into executable native code (e.g., machine code) at the time the code is executed.